﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Entity.Validation;

namespace Backend.JYD.Common
{
    public class LogHelper
    {
        private const string errorMsg = "Error Time：{2}\r\nMessage：{0}\r\nStackTrace：{1}";
        
        private static string GetErrorMessage(Exception ex)
        {
            if (ex == null) return string.Empty;
            return string.Format(errorMsg, (ex.InnerException == null ? ex.Message : ex.InnerException.Message), ex.StackTrace, DateTimeHelper.GetDateLongFormat(DateTime.Now));
        }
        public static void Log(Exception ex)
        {
            string msg = GetErrorMessage(ex);
        }
        public static void Log(string msg, Exception ex)
        {
            msg = msg + "\r\n" + GetErrorMessage(ex);
        }
        public static void Info(string msg)
        {
        }
        private static string GetErrorMessage(DbEntityValidationException ex)
        {
            string msg = string.Empty;
            if (ex.EntityValidationErrors.Count() > 0)
            {
                foreach (var err in ex.EntityValidationErrors)
                {
                    if (err.ValidationErrors.Count > 0)
                    {
                        foreach (var valid in err.ValidationErrors)
                        {
                            msg += "，PropertyName =" + valid.PropertyName;
                            msg += "，ErrorMessage =" + valid.ErrorMessage;
                        }
                    }
                }
            }
            return msg;
        }

        public static void Log(DbEntityValidationException ex)
        {
            string msg = GetErrorMessage(ex);
        }
        public static void Log(string msg, DbEntityValidationException ex)
        {
            msg = msg + "\r\n" + GetErrorMessage(ex);

        }

    }
}
